package com.qf.hsr.controller;

import com.qf.hsr.common.ResultVO;
import com.qf.hsr.pojo.User;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;

import java.util.Date;

/**
 * @author q
 * @version V1.0
 * @date 2021/11/15
 **/
@Controller
@RequestMapping("/user")
public class UserController {

    //RestFul   是SpringMVC支持的一种开发风格【很受市场欢迎的，很多公司都在用】
    //以相同的URL，不同的请求方式来对应不同的操作
    //- GET     ----  查询  ----    @GetMapping("/url")：请求方式为GET的@RequestMapping
    //- DELETE  ----  删除  ----    @PutMapping("/url")：请求方式为PUT的@RequestMapping
    //- POST    ----  新增  ----    @DeleteMapping("/url")：请求方式为DELETE的@RequestMapping
    //- PUT     ----  修改  ----    @PutMapping("/url")：请求方式为PUT的@RequestMapping

    @GetMapping("/findAll")
    @ResponseBody
    public ResultVO findAll(){
        System.out.println("查询所有用户~");
        return ResultVO.ok("查询所有用户成功~");
    }

    @GetMapping("/findById/{id}")
    @ResponseBody
    public ResultVO findById(@PathVariable("id") Integer userId){
        System.out.println("查询了用户id：" + userId);
        return ResultVO.ok("查询成功", "查询了用户id：" + userId);
    }

    @DeleteMapping("/delete/{id}")
    @ResponseBody
    public ResultVO delete(@PathVariable("id") Integer userId){
        System.out.println("删除了id为" + userId + "的用户~");
        return ResultVO.ok("删除成功~","删除了id为" + userId + "的用户~");
    }

    @PostMapping("/save")
    @ResponseBody
    public ResultVO save(@RequestBody User user){
        System.out.println("新增用户 " + user);
        return ResultVO.ok("新增成功~", user);
    }


    @PutMapping("/update")
    @ResponseBody
    public ResultVO update(@RequestBody User user){
        System.out.println("更新用户 " + user);
        user.setUsername("newUsername");
        user.setBirth(java.sql.Date.valueOf("2002-5-20"));
        return ResultVO.ok("修改成功 " + user);
    }

}
